package com.lzh.o2o.service;

import java.io.InputStream;
import java.util.List;

import com.lzh.o2o.dto.ImageHolder;
import com.lzh.o2o.dto.ProductExecution;
import com.lzh.o2o.exception.ProductOperationException;
import com.lzh.o2o.pojo.Product;

/**
 * @author haohao:
 * @date 创建时间：2018年9月16日 下午10:10:07
 * @version 1.0
 * @parameter
 * @since
 * @return
 */
public interface ProductService {
	/**
	 * 
	 * @Title: addProduct
	 * @Description: TODO
	 * @param product
	 *            商品
	 * @param thumbnail
	 *            商品图片与二进制封装类
	 * @param thumbnailList
	 *            商品图片与二进制封装类集合
	 * @return
	 * @throws ProductOperationException
	 *             ProductExecution
	 * @author haohao
	 * @date 2018年9月17日上午11:41:11
	 */
	ProductExecution addProduct(Product product, ImageHolder thumbnail, List<ImageHolder> thumbnailList)
			throws ProductOperationException;
	/**
	 * 
	* @Title: getProductById 
	* @Description: 根据商品id获取商品信息 回显 
	* @param productId
	* @return
	* @throws ProductOperationException Product
	* @author haohao
	* @date 2018年9月17日下午8:14:11
	 */
	Product getProductById(Long productId) throws ProductOperationException;
	/**
	 * 
	* @Title: modifyProduct 
	* @Description: 修改商品信息 以及图片处理
	* @param product
	* @param thumbnail
	* @param productImgList
	* @return
	* @throws ProductOperationException ProductExecution
	* @author haohao
	* @date 2018年9月17日下午8:16:08
	 */
	ProductExecution modifyProduct(Product product,ImageHolder thumbnail,List<ImageHolder> productImgList)throws ProductOperationException;
	/**
	 * 
	* @Title: getProductList 
	* @Description: 分页查询商品列表 
	* @param productCondition
	* @param pageIndex
	* @param pageSize
	* @return ProductExecution
	* @author haohao
	* @date 2018年9月18日上午10:54:41
	 */
	ProductExecution getProductList(Product productCondition,int pageIndex,int pageSize);
}
